package net.csdn.business.discuss.api.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.ObjectUtils;

/**
 * @ClassName DiscussActionEventEnum
 * @Description discuss 操作事件 code < 0 暂不作为change事件入库
 * @Author zhangyl
 * @Date 2023/7/22 10:18
 */
@Getter
@AllArgsConstructor
public enum AutditActionEventEnum {
    /**
     * 讨论分类创建
     */
    DiSCUSS_CATEGORY_CREATE("category_create", 1),
    /**
     * 讨论分类更新
     */
    DiSCUSS_CATEGORY_UPDATE("category_update", 2),
    /**
     * 讨论分类删除
     */
    DiSCUSS_CATEGORY_DELETE("category_comment", 3),
    /**
     * 讨论分组创建
     */
    DiSCUSS_SECTION_CREATE("section_create", 1),
    /**
     * 讨论分组更新
     */
    DiSCUSS_SECTION_UPDATE("section_update", 2),
    /**
     * 讨论分组删除
     */
    DiSCUSS_SECTION_DELETE("section_comment", 3),
    /**
     * 讨论创建
     */
    DiSCUSS_CREATE("create", 1),
    /**
     * 讨论更新
     */
    DiSCUSS_UPDATE("update", 2),
    /**
     * 讨论删除
     */
    DiSCUSS_DELETE("comment", 3),
    /**
     * 讨论评论创建
     */
    DiSCUSS_COMMENT_CREATE("comment_create", 1),
    /**
     * 讨论评论更新
     */
    DiSCUSS_COMMENT_UPDATE("comment_update", 2),
    /**
     * 讨论评论删除
     */
    DiSCUSS_COMMENT_DELETE("comment_comment", 3),
    ;
    private final String action;

    private final Integer code;

    public static AutditActionEventEnum ofCode(Integer code) {
        if (ObjectUtils.isEmpty(code)) {
            return null;
        }
        for (AutditActionEventEnum event : AutditActionEventEnum.values()) {
            if (event.code.equals(code)) {
                return event;
            }
        }
        throw new IllegalArgumentException("IssueActionEventEnum param error");
    }
}